Nearly half of all deaths in children under 5 are attributable to undernutrition
Undernutrition puts children at greater risk of dying from common infections, increases the frequency and severity of such infections, and contributes to delayed recovery.
Poor nutrition in the first 1,000 days of a child’s life can also lead to stunted growth, which is irreversible and associated with impaired cognitive ability and reduced school and work performance.
Map 1. Prevalence of wasting and stunting per country
The relationship between wasting and stunting
Countries with higher levels of stunting that demand immediate attention…
Graph 1. Relationship between stunting and wasting prevalence
At a regional level, South Asia is the most affected region with over 20 million children with malnutrition.
Graph 2. Number of children wasted, per region

Trends in malnutrition prevalence
Global prevalence of stunting, 1995-2015
Malnutrition rates remain alarming: stunting is declining too slowly while
Regional trends


Table 1. Wasting and stunting prevalences, 2000-2014
Data…
Disparities between malnutrition and wealth
LS0tDQp0aXRsZTogIkdsb2JhbCBjaGlsZCBtYWxudXRyaXRpb24gb3ZlcnZpZXciDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6IGRlZmF1bHQNCiAgaHRtbF9ub3RlYm9vazogZGVmYXVsdA0KLS0tDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Kc2V0d2QoIkM6L1VzZXJzL2NyaXNoL09uZURyaXZlL0RvY3VtZW50cy9Db2x1bWJpYSBTSVBBLzIwMTcgU3ByaW5nL0RhdGEgVmlzdWFsaXphdGlvbi9GaW5hbCBQcm9qZWN0LyIpDQoNCmxpYnJhcnkocmVhZHIpDQpqbWVfbGF0ZXN0IDwtIHJlYWRzdGF0YTEzOjpyZWFkLmR0YTEzKCJkYXRhL0pNRV8yMDE2X2xhdGVzdC5kdGEiKQ0Kam1lIDwtIHJlYWRzdGF0YTEzOjpyZWFkLmR0YTEzKCJkYXRhL0pNRV8yMDE2LmR0YSIpDQpkaXNwYXJpdGllcyA8LSByZWFkc3RhdGExMzo6cmVhZC5kdGExMygiZGF0YS9zdHVudGluZyBkaXNwYXJpdGllcy5kdGEiKQ0KYGBgDQoNCiMjIE5lYXJseSBoYWxmIG9mIGFsbCBkZWF0aHMgaW4gY2hpbGRyZW4gdW5kZXIgNSBhcmUgYXR0cmlidXRhYmxlIHRvIHVuZGVybnV0cml0aW9uDQoNClVuZGVybnV0cml0aW9uIHB1dHMgY2hpbGRyZW4gYXQgZ3JlYXRlciByaXNrIG9mIGR5aW5nIGZyb20gY29tbW9uIGluZmVjdGlvbnMsIGluY3JlYXNlcyB0aGUgZnJlcXVlbmN5IGFuZCBzZXZlcml0eSBvZiBzdWNoIGluZmVjdGlvbnMsIGFuZCBjb250cmlidXRlcyB0byBkZWxheWVkIHJlY292ZXJ5LiANCg0KUG9vciBudXRyaXRpb24gaW4gdGhlIGZpcnN0IDEsMDAwIGRheXMgb2YgYSBjaGlsZCdzIGxpZmUgY2FuIGFsc28gbGVhZCB0byBzdHVudGVkIGdyb3d0aCwgd2hpY2ggaXMgaXJyZXZlcnNpYmxlIGFuZCBhc3NvY2lhdGVkIHdpdGggaW1wYWlyZWQgY29nbml0aXZlIGFiaWxpdHkgYW5kIHJlZHVjZWQgc2Nob29sIGFuZCB3b3JrIHBlcmZvcm1hbmNlLg0KDQojIyMjRm9ybXMgb2YgbWFsbnV0cml0aW9uDQpTdHVudGluZzogcmVmZXJzIHRvIGEgY2hpbGQgd2hvIGlzIHRvbyBzaG9ydCBmb3IgaGlzIG9yIGhlciBhZ2UuIFN0dW50aW5nIGlzIHRoZSBmYWlsdXJlIHRvIGdyb3cgYm90aCBwaHlzaWNhbGx5IGFuZCBjb2duaXRpdmVseSBhbmQgaXMgdGhlIHJlc3VsdCBvZiBjaHJvbmljIG9yIHJlY3VycmVudCBtYWxudXRyaXRpb24uIFRoZSBkZXZhc3RhdGluZyBlZmZlY3RzIG9mIHN0dW50aW5nIGNhbiBsYXN0IGEgbGlmZXRpbWUuIA0KDQpXYXN0aW5nOiByZWZlcnMgdG8gYSBjaGlsZCB3aG8gaXMgdG9vIHRoaW4gZm9yIGhpcyBvciBoZXIgaGVpZ2h0LiBXYXN0aW5nLCBvciBhY3V0ZSBtYWxudXRyaXRpb24sIGlzIHRoZSByZXN1bHQgb2YgcmVjZW50IHJhcGlkIHdlaWdodCBsb3NzIG9yIHRoZSBmYWlsdXJlIHRvIGdhaW4gd2VpZ2h0LiBBIGNoaWxkIHdobyBpcyBtb2RlcmF0ZWx5IG9yIHNldmVyZWx5IHdhc3RlZCBoYXMgYW4gaW5jcmVhc2VkIHJpc2sgb2YgZGVhdGgsIGJ1dCB0cmVhdG1lbnQgaXMgcG9zc2libGUuIA0KDQpgYGB7ciwgaW5jbHVkZT1GQUxTRX0NCmxpYnJhcnkocmFzdGVyKQ0Kd29ybGRfc3BkZiA8LSBzaGFwZWZpbGUoIkM6L1VzZXJzL2NyaXNoL09uZURyaXZlL0RvY3VtZW50cy9Db2x1bWJpYSBTSVBBLzIwMTcgU3ByaW5nL0RhdGEgVmlzdWFsaXphdGlvbi9GaW5hbCBQcm9qZWN0L2RhdGEvd29ybGRfbWFwL1RNX1dPUkxEX0JPUkRFUlNfU0lNUEwtMC4zLnNocCIpDQoNCiMgTWVyZ2UgdGhlIFFvRyBkYXRhIHRvIFNoYXBlIEZpbGVzDQpsaWJyYXJ5KGRwbHlyKQ0KbWFwam1lIDwtIHdvcmxkX3NwZGZAZGF0YSAlPiUgbGVmdF9qb2luKGptZV9sYXRlc3QsIGJ5ID0gYyhJU08zID0gImlzbyIpKQ0Kd29ybGRfc3BkZkBkYXRhIDwtIG1hcGptZQ0KDQpgYGANCg0KIyMjI01hcCAxLiBQcmV2YWxlbmNlIG9mIHdhc3RpbmcgYW5kIHN0dW50aW5nIHBlciBjb3VudHJ5DQoNCmBgYHtyLCBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCBmaWcuYWxpZ249J2NlbnRlcid9DQoNCmxpYnJhcnkobGVhZmxldCkNCmxlYWZsZXQod29ybGRfc3BkZikgJT4lIA0KICBhZGRQcm92aWRlclRpbGVzKCJFc3JpLldvcmxkR3JheUNhbnZhcyIpICAlPiUgDQogIHNldFZpZXcobGF0PTI1LCBsbmc9Mi44ICwgem9vbT0yKSAlPiUNCiAgDQogICAgIyBCYXNlIGdyb3VwcyA9IEJhY2tncm91bmQgbGF5ZXINCiAgICBhZGRUaWxlcyhncm91cCA9ICJPcGVuU3RyZWV0TWFwIikgJT4lDQogICAgYWRkUHJvdmlkZXJUaWxlcyhwcm92aWRlcnMkU3RhbWVuLlRvbmVyTGl0ZSwgZ3JvdXAgPSAiVG9uZXIgTGl0ZSIpICU+JQ0KICAgIGFkZFByb3ZpZGVyVGlsZXMocHJvdmlkZXJzJFN0YW1lbi5Ub25lciwgZ3JvdXAgPSAiVG9uZXIiKSAgJT4lDQogICAgDQogICAgIyBEYXRhIExheWVycw0KICAgICAgIyBGaXJzdCBEYXRhIExheWVyDQogICAgYWRkUG9seWdvbnMoZ3JvdXA9Ildhc3RpbmciLCBkYXRhPXdvcmxkX3NwZGYsDQogICAgICAgICAgICAgICAgc3Ryb2tlID0gRkFMU0UsIGZpbGxPcGFjaXR5ID0gMSwgc21vb3RoRmFjdG9yID0gMC41LCANCiAgICAgICAgICAgICAgICBjb2xvciA9IH5jb2xvck51bWVyaWMoIkJsdWVzIiwgd2FzdGluZykod2FzdGluZyksDQogICAgICAgICAgICAgICAgcG9wdXAgPSBwYXN0ZSgiQ291bnRyeToiLHdvcmxkX3NwZGYkTkFNRSwiPGJyLz4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldhc3RpbmcgcHJldmFsZW5jZToiLCB3b3JsZF9zcGRmJHdhc3RpbmcsIiUiLCI8YnIvPiIpKSAlPiUNCiAgICBhZGRMZWdlbmQoImJvdHRvbXJpZ2h0IiwgcGFsID0gY29sb3JOdW1lcmljKCJCbHVlcyIsIHdvcmxkX3NwZGYkd2FzdGluZyksIA0KICAgICAgICAgICAgICB2YWx1ZXMgPSB+d2FzdGluZywgdGl0bGUgPSAiJSBXYXN0aW5nIiwgb3BhY2l0eSA9IDEpICU+JQ0KICANCiAgIyBTZWNvbmQgRGF0YSBMYXllcjoNCiAgYWRkUG9seWdvbnMoZ3JvdXA9IlN0dW50aW5nIiwNCiAgICAgICAgICAgICAgICBzdHJva2UgPSBGQUxTRSwgZmlsbE9wYWNpdHkgPSAxLCBzbW9vdGhGYWN0b3IgPSAwLjUsIA0KICAgICAgICAgICAgICAgIGNvbG9yID0gfmNvbG9yUXVhbnRpbGUoIlJlZHMiLCBzdHVudGluZykoc3R1bnRpbmcpLA0KICAgICAgICAgICAgICAgIHBvcHVwID0gcGFzdGUoIkNvdW50cnk6Iix3b3JsZF9zcGRmJE5BTUUsIjxici8+IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdHVudGluZyBwcmV2YWxlbmNlOiIsIHdvcmxkX3NwZGYkc3R1bnRpbmcsIiUiLCI8YnIvPiIpKSAlPiUNCiAgYWRkTGVnZW5kKCJib3R0b21yaWdodCIsIHBhbCA9IGNvbG9yTnVtZXJpYygiUmVkcyIsIHdvcmxkX3NwZGYkc3R1bnRpbmcpLCANCiAgICAgICAgICAgIHZhbHVlcyA9IH5zdHVudGluZywgdGl0bGUgPSAiJSBTdHVudGluZyIsIG9wYWNpdHkgPSAxKSAlPiUNCiAgDQogICAgIyBMYXllcnMgY29udHJvbA0KICAgIGFkZExheWVyc0NvbnRyb2woDQogICAgYmFzZUdyb3VwcyA9IGMoIk9wZW5TdHJlZXRNYXAiLCAiVG9uZXIiLCAiVG9uZXIgTGl0ZSIpLA0KICAgIG92ZXJsYXlHcm91cHMgPSBjKCJTdHVudGluZyIsIldhc3RpbmciKSwNCiAgICBvcHRpb25zID0gbGF5ZXJzQ29udHJvbE9wdGlvbnMoY29sbGFwc2VkID0gVFJVRSkgKQ0KYGBgDQoNCg0KIyNUaGUgcmVsYXRpb25zaGlwIGJldHdlZW4gd2FzdGluZyBhbmQgc3R1bnRpbmcgDQoNCkNvdW50cmllcyB3aXRoIGhpZ2hlciBsZXZlbHMgb2Ygc3R1bnRpbmcgdGhhdCBkZW1hbmQgaW1tZWRpYXRlIGF0dGVudGlvbi4uLg0KDQpgYGB7ciwgaW5jbHVkZT1GQUxTRX0NCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkoZ2d0aGVtZXMpDQpsaWJyYXJ5KHNjYWxlcykNCg0KZ2dwbG90KGptZV9sYXRlc3QsIGFlcyh4PXN0dW50aW5nLCB5PXdhc3RpbmcsIGNvbG9yPXJlZ2lvbikpICsgZ2VvbV9wb2ludChhbHBoYT0wLjUsIHNpemU9MykgKyANCiAgZ2d0aXRsZSgiUHJldmFsZW5jZSBvZiBzdHVudGluZyBhbmQgd2FzdGluZyIpICsgDQogIGxhYnMoeD0iU3R1bnRpbmcgKCUpIiwgeSA9ICJXYXN0aW5nICglKSIsIHNpemU9OCkgKw0KICB0aGVtZV9jbGFzc2ljKGJhc2Vfc2l6ZSA9IDEyKSArIHRoZW1lKHRleHQgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiZ3JheTIwIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoTlVMTCksDQogICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gYygiYm90dG9tIiksDQogICAgICAgICAgYXhpcy50ZXh0ID0gZWxlbWVudF90ZXh0KGZhY2UgPSAiaXRhbGljIiksDQogICAgICAgICAgYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHZqdXN0ID0gLTEpLA0KICAgICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dCh2anVzdCA9IDIpLA0KICAgICAgICAgIGF4aXMudGlja3MueSA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgICBheGlzLmxpbmUgPSBlbGVtZW50X2xpbmUoY29sb3IgPSAiZ3JheTQwIiwgc2l6ZSA9IDAuNSksDQogICAgICAgICAgYXhpcy5saW5lLnkgPSBlbGVtZW50X2JsYW5rKCksDQogICAgICAgICAgcGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfbGluZShjb2xvciA9ICJncmF5NTAiLCBzaXplID0gMC41KSwNCiAgICAgICAgICBwYW5lbC5ncmlkLm1ham9yLnggPSBlbGVtZW50X2JsYW5rKCksDQogICAgICAgICAgcGxvdC5tYXJnaW4gPSBtYXJnaW4odCA9IDAsIHIgPSAwLCBiID0gNDAsIGwgPSA1LCB1bml0ID0gInB0IiksDQogICAgICAgICAgcGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChmYWNlID0gImJvbGQiLCBjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMSwgaGp1c3Q9MC41KSkNCmBgYA0KDQojIyMjIEdyYXBoIDEuIFJlbGF0aW9uc2hpcCBiZXR3ZWVuIHN0dW50aW5nIGFuZCB3YXN0aW5nIHByZXZhbGVuY2UNCg0KYGBge3IsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIGZpZy5hbGlnbj0nY2VudGVyJ30NCmxpYnJhcnkocGxvdGx5KSANCnBsb3RfbHkoam1lX2xhdGVzdCwgeCA9IH5zdHVudGluZywgeT1+d2FzdGluZywgDQogICAgICAgICAgICAgICAgICAgICBjb2xvciA9IH5yZWdpb24sIHR5cGUgPSAic2NhdHRlciIsDQogICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gfnBhc3RlKGNvdW50cnksICdZZWFyOicsIHllYXIpKQ0KYGBgDQoNCg0KDQpBdCBhIHJlZ2lvbmFsIGxldmVsLCBTb3V0aCBBc2lhIGlzIHRoZSBtb3N0IGFmZmVjdGVkIHJlZ2lvbiB3aXRoIG92ZXIgMjAgbWlsbGlvbiBjaGlsZHJlbiB3aXRoIG1hbG51dHJpdGlvbi4gDQoNCiMjIyNHcmFwaCAyLiBOdW1iZXIgb2YgY2hpbGRyZW4gd2FzdGVkLCBwZXIgcmVnaW9uDQpgYGB7ciwgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0NCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkoZ2d0aGVtZXMpDQpsaWJyYXJ5KHNjYWxlcykNCg0Kam1lMjAxNCA8LSBqbWVbd2hpY2goam1lJHllYXI9PScyMDE0JyksXQ0KDQpnZ3Bsb3Qoc3Vic2V0KGptZTIwMTQpLCBhZXMoeD1yZWdpb24sIHk9bnVtX3dhc3RpbmcsIGZpbGw9cmVnaW9uKSkgKyBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKyANCiAgICAgICAgIHNjYWxlX2ZpbGxfYnJld2VyKHBhbGV0dGU9IllsR25CdSIpICsgY29vcmRfZmxpcCgpICsNCiAgI2dndGl0bGUoIkdyYXBoIDEuIE51bWJlciBvZiBjaGlsZHJlbiB3YXN0ZWQsIDIwMTQiKSArIA0KICBsYWJzKHg9IiIsIHkgPSAiQ2hpbGRyZW4gd2FzdGVkIiwgc2l6ZT04KSArDQogIHRoZW1lX2NsYXNzaWMoYmFzZV9zaXplID0gMTIpICsgdGhlbWUodGV4dCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJncmF5MjAiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChOVUxMKSwNCiAgICAgICAgICBsZWdlbmQucG9zaXRpb24gPSBjKCJub25lIiksDQogICAgICAgICAgYXhpcy50ZXh0ID0gZWxlbWVudF90ZXh0KGZhY2UgPSAiaXRhbGljIiksDQogICAgICAgICAgYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHZqdXN0ID0gLTEpLA0KICAgICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dCh2anVzdCA9IDIpLA0KICAgICAgICAgIGF4aXMudGlja3MueSA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgICBheGlzLmxpbmUgPSBlbGVtZW50X2xpbmUoY29sb3IgPSAiZ3JheTQwIiwgc2l6ZSA9IDAuNSksDQogICAgICAgICAgYXhpcy5saW5lLnkgPSBlbGVtZW50X2JsYW5rKCksDQogICAgICAgICAgcGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfbGluZShjb2xvciA9ICJncmF5NTAiLCBzaXplID0gMC41KSwNCiAgICAgICAgICBwYW5lbC5ncmlkLm1ham9yLnggPSBlbGVtZW50X2JsYW5rKCksDQogICAgICAgICAgcGxvdC5tYXJnaW4gPSBtYXJnaW4odCA9IDAsIHIgPSAwLCBiID0gNDAsIGwgPSA1LCB1bml0ID0gInB0IiksDQogICAgICAgICAgcGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChmYWNlID0gImJvbGQiLCBjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMSwgaGp1c3Q9MC41KSkNCmBgYA0KDQoNCiMjI1RyZW5kcyBpbiBtYWxudXRyaXRpb24gcHJldmFsZW5jZQ0KDQpgYGB7ciwgaW5jbHVkZT1GQUxTRX0NCg0Kam1leWVhcnMgPC0gam1lW3doaWNoKGptZSR5ZWFyPT0nMjAwMCcgfCBqbWUkeWVhcj09JzIwMDYnIHwgam1lJHllYXI9PScyMDEwJyB8IGptZSR5ZWFyPT0nMjAxNCcpLF0NCg0KZ2dwbG90KGRhdGE9am1leWVhcnMsIGFlcyh4PXllYXIsIHk9bnVtX3dhc3RpbmcsIGZpbGw9eWVhcikpICsgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIpICsgDQogICAgICAgICBzY2FsZV9maWxsX2JyZXdlcihwYWxldHRlPSJZbEduQnUiKSArIA0KICBnZ3RpdGxlKCJHcmFwaCAxLiBOdW1iZXIgb2YgY2hpbGRyZW4gd2FzdGVkLCAyMDE0IikgKyANCiAgbGFicyh4PSIiLCB5ID0gIk51bWJlciBvZiBjaGlsZHJlbiB3YXN0ZWQiLCBzaXplPTgpICsNCiAgdGhlbWVfY2xhc3NpYyhiYXNlX3NpemUgPSAxMikgKyB0aGVtZSh0ZXh0ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gImdyYXkyMCIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KE5VTEwpLA0KICAgICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9IGMoIm5vbmUiKSwgDQogICAgICAgICAgYXhpcy50ZXh0ID0gZWxlbWVudF90ZXh0KGZhY2UgPSAiaXRhbGljIiksDQogICAgICAgICAgYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHZqdXN0ID0gLTEpLA0KICAgICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dCh2anVzdCA9IDIpLA0KICAgICAgICAgIGF4aXMudGlja3MueSA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgICBheGlzLmxpbmUgPSBlbGVtZW50X2xpbmUoY29sb3IgPSAiZ3JheTQwIiwgc2l6ZSA9IDAuNSksDQogICAgICAgICAgYXhpcy5saW5lLnkgPSBlbGVtZW50X2JsYW5rKCksDQogICAgICAgICAgcGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfbGluZShjb2xvciA9ICJncmF5NTAiLCBzaXplID0gMC41KSwNCiAgICAgICAgICBwYW5lbC5ncmlkLm1ham9yLnggPSBlbGVtZW50X2JsYW5rKCksDQogICAgICAgICAgcGxvdC5tYXJnaW4gPSBtYXJnaW4odCA9IDAsIHIgPSAwLCBiID0gNDAsIGwgPSA1LCB1bml0ID0gInB0IiksDQogICAgICAgICAgcGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChmYWNlID0gImJvbGQiLCBjb2xvciA9ICJibGFjayIsIHNpemUgPSAxMSwgaGp1c3Q9MC41KSkNCmBgYA0KDQoNCmBgYHtyLCBpbmNsdWRlPUZBTFNFfQ0Kc3R1bnRpbmdfZ2xvYmFsIDwtIGMoMzkuNiAsIDM1LjcgLCAzMi43ICwgMjkuNCAsIDI0LjQgLCAyMy4yKQ0KeWVhciA8LSBjKCIxOTkwIiwgIjE5OTUiLCAiMjAwMCIsICIyMDA1IiwgIjIwMTAiLCAiMjAxNSIpIA0KdHJlbmRfc3R1bnRpbmdfZ2xvYmFsIDwtIGRhdGEuZnJhbWUoc3R1bnRpbmdfZ2xvYmFsLHllYXIpDQpuYW1lcyh0cmVuZF9zdHVudGluZ19nbG9iYWwpIDwtIGMoInN0dW50aW5nX2dsb2JhbCIsInllYXIiKQ0KDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KGdndGhlbWVzKQ0KbGlicmFyeShzY2FsZXMpDQpnZ3Bsb3QoZGF0YT10cmVuZF9zdHVudGluZ19nbG9iYWwsIGFlcyh4PXllYXIsIHk9c3R1bnRpbmdfZ2xvYmFsKSkgKyANCiAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIsIGZpbGw9IiMwMDlGREYiKSArIA0KICBzY2FsZV9maWxsX2JyZXdlcihwYWxldHRlPSJZbEduQnUiKSArDQogIGdndGl0bGUoIkdyYXBoIDEuIFRyZW5kcyBpbiBzdHVudGluZyBwcmV2YWxlbmNlLCAxOTkwLTIwMTUiKSArIA0KICBsYWJzKHg9IiIsIHkgPSAiQ2hpbGRyZW4gZ2l2ZW4gTU5QIiwgc2l6ZT04KSArDQogIHRoZW1lX2NsYXNzaWMoYmFzZV9zaXplID0gMTIpICsgdGhlbWUodGV4dCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJncmF5MjAiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChOVUxMKSwNCiAgICAgICAgICBsZWdlbmQucG9zaXRpb24gPSBjKCJib3R0b20iKSwgbGVnZW5kLmRpcmVjdGlvbiA9ICJob3Jpem9udGFsIiwNCiAgICAgICAgICBsZWdlbmQuanVzdGlmaWNhdGlvbiA9IDAuMDUsIGxlZ2VuZC50ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSA5LCBjb2xvciA9ICJncmF5MTAiKSwNCiAgICAgICAgICBsZWdlbmQua2V5LmhlaWdodD11bml0KDEsImxpbmUiKSwgbGVnZW5kLmtleS53aWR0aD11bml0KDEsImxpbmUiKSwNCiAgICAgICAgICBheGlzLnRleHQgPSBlbGVtZW50X3RleHQoZmFjZSA9ICJpdGFsaWMiKSwNCiAgICAgICAgICBheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQodmp1c3QgPSAtMSksDQogICAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHZqdXN0ID0gMiksDQogICAgICAgICAgYXhpcy50aWNrcy55ID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgICAgIGF4aXMubGluZSA9IGVsZW1lbnRfbGluZShjb2xvciA9ICJncmF5NDAiLCBzaXplID0gMC41KSwNCiAgICAgICAgICBheGlzLmxpbmUueSA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgICBwYW5lbC5ncmlkLm1ham9yID0gZWxlbWVudF9saW5lKGNvbG9yID0gImdyYXk1MCIsIHNpemUgPSAwLjUpLA0KICAgICAgICAgIHBhbmVsLmdyaWQubWFqb3IueCA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgICBwbG90Lm1hcmdpbiA9IG1hcmdpbih0ID0gMCwgciA9IDAsIGIgPSA0MCwgbCA9IDUsIHVuaXQgPSAicHQiKSwNCiAgICAgICAgICBwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGZhY2UgPSAiYm9sZCIsIGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDExLCBoanVzdD0wLjUpKQ0KYGBgDQoNCg0KIyMjIyBHbG9iYWwgcHJldmFsZW5jZSBvZiBzdHVudGluZywgMTk5NS0yMDE1DQoNCk1hbG51dHJpdGlvbiByYXRlcyByZW1haW4gYWxhcm1pbmc6IHN0dW50aW5nIGlzIGRlY2xpbmluZyB0b28gc2xvd2x5IHdoaWxlDQoNCmBgYHtyLCBlY2hvPUZBTFNFfQ0KcGxvdF9seSh0cmVuZF9zdHVudGluZ19nbG9iYWwsIHggPSB+eWVhciwgeT1+c3R1bnRpbmdfZ2xvYmFsLCANCiAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAiYmFyIiwNCiAgICAgICAgICAgICAgICAgICAgIHRleHQgPSB+cGFzdGUoJ1N0dW50aW5nICglKTonLHN0dW50aW5nX2dsb2JhbCwgJ1llYXI6JywgeWVhcikpDQpgYGANCg0KDQoNCiMjIyNSZWdpb25hbCB0cmVuZHMNCg0KYGBge3IsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9DQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KGdndGhlbWVzKQ0KbGlicmFyeShzY2FsZXMpDQoNCmptZTA2MTQgPC0gam1lW3doaWNoKGptZSR5ZWFyPT0nMjAwNicgfCBqbWUkeWVhcj09JzIwMTQnKSxdDQoNCmdncGxvdChqbWUwNjE0LCBhZXMoeD15ZWFyLCB5PXN0dW50aW5nKSkgKyANCiAgZ2VvbV9ib3hwbG90KCkgKw0KICBnZW9tX2ppdHRlcihzaXplID0gNCwgYWxwaGEgPSAwLjUsIGFlcyhjb2wgPSByZWdpb24sIHNpemU9eWVhciksIG5hLnJtID0gVFJVRSkgICsgZmFjZXRfZ3JpZCguIH4gcmVnaW9uKSArDQogIGdndGl0bGUoIkdyYXBoIDEuIFBlcmNlbnRhZ2Ugb2Ygc3R1bnRpbmcgcGVyIHJlZ2lvbiwgMjAwNi0yMDE0IikgKyANCiAgbGFicyh4PSIiLCB5ID0gIlN0dW50aW5nICglKSIsIHNpemU9OCkgKw0KICBnZ3RoZW1lczo6dGhlbWVfZmV3KGJhc2Vfc2l6ZSA9IDEyKSArIHRoZW1lKHRleHQgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiZ3JheTIwIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoTlVMTCksDQogICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gYygibm9uZSIpLCANCiAgICAgICAgICBheGlzLnRleHQgPSBlbGVtZW50X3RleHQoZmFjZSA9ICJpdGFsaWMiKSwNCiAgICAgICAgICBheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQodmp1c3QgPSAtMSksDQogICAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHZqdXN0ID0gMiksDQogICAgICAgICAgYXhpcy50aWNrcy55ID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgICAgIGF4aXMubGluZSA9IGVsZW1lbnRfbGluZShjb2xvciA9ICJncmF5NDAiLCBzaXplID0gMC41KSwNCiAgICAgICAgICBheGlzLmxpbmUueSA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgICBwYW5lbC5ncmlkLm1ham9yID0gZWxlbWVudF9saW5lKGNvbG9yID0gImdyYXk1MCIsIHNpemUgPSAwLjUpLA0KICAgICAgICAgIHBhbmVsLmdyaWQubWFqb3IueCA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgICBwbG90Lm1hcmdpbiA9IG1hcmdpbih0ID0gMCwgciA9IDAsIGIgPSA0MCwgbCA9IDUsIHVuaXQgPSAicHQiKSwNCiAgICAgICAgICBwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGZhY2UgPSAiYm9sZCIsIGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDExLCBoanVzdD0wLjUpKQ0KYGBgDQoNCg0KDQoNCg0KYGBge3IsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9DQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KGdndGhlbWVzKQ0KbGlicmFyeShzY2FsZXMpDQoNCmdncGxvdChqbWUwNjE0LCBhZXMoeD15ZWFyLCB5PXdhc3RpbmcpKSArIA0KICBnZW9tX2JveHBsb3QoKSArDQogIGdlb21faml0dGVyKHNpemUgPSA0LCBhbHBoYSA9IDAuNSwgYWVzKGNvbCA9IHJlZ2lvbiwgc2l6ZT15ZWFyKSwgbmEucm0gPSBUUlVFKSAgKyBmYWNldF9ncmlkKC4gfiByZWdpb24pICsNCiAgZ2d0aXRsZSgiR3JhcGggMS4gUGVyY2VudGFnZSBvZiB3YXN0aW5nIHBlciByZWdpb24sIDIwMDYtMjAxNCIpICsgDQogIGxhYnMoeD0iIiwgeSA9ICJXYXN0aW5nICglKSIsIHNpemU9OCkgKw0KICBnZ3RoZW1lczo6dGhlbWVfZmV3KGJhc2Vfc2l6ZSA9IDEyKSArIHRoZW1lKHRleHQgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiZ3JheTIwIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoTlVMTCksDQogICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gYygibm9uZSIpLCANCiAgICAgICAgICBheGlzLnRleHQgPSBlbGVtZW50X3RleHQoZmFjZSA9ICJpdGFsaWMiKSwNCiAgICAgICAgICBheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQodmp1c3QgPSAtMSksDQogICAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHZqdXN0ID0gMiksDQogICAgICAgICAgYXhpcy50aWNrcy55ID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgICAgIGF4aXMubGluZSA9IGVsZW1lbnRfbGluZShjb2xvciA9ICJncmF5NDAiLCBzaXplID0gMC41KSwNCiAgICAgICAgICBheGlzLmxpbmUueSA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgICBwYW5lbC5ncmlkLm1ham9yID0gZWxlbWVudF9saW5lKGNvbG9yID0gImdyYXk1MCIsIHNpemUgPSAwLjUpLA0KICAgICAgICAgIHBhbmVsLmdyaWQubWFqb3IueCA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgICBwbG90Lm1hcmdpbiA9IG1hcmdpbih0ID0gMCwgciA9IDAsIGIgPSA0MCwgbCA9IDUsIHVuaXQgPSAicHQiKSwNCiAgICAgICAgICBwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGZhY2UgPSAiYm9sZCIsIGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IDExLCBoanVzdD0wLjUpKQ0KYGBgDQoNCiMjIyMgVGFibGUgMS4gV2FzdGluZyBhbmQgc3R1bnRpbmcgcHJldmFsZW5jZXMsIDIwMDAtMjAxNA0KDQpgYGB7ciwgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgZmlnLndpZHRoPTMsIGZpZy5hbGlnbj0nY2VudGVyJ30NCg0KbXl2YXJzIDwtIGMoImNvdW50cnkiLCAicmVnaW9uIiwgInllYXIiLCAid2FzdGluZyIsICJzdHVudGluZyIsICJwb3A1IikNCmptZV9zaG9ydCA8LSBqbWV5ZWFyc1tteXZhcnNdDQoNCiNpbnN0YWxsLnBhY2thZ2VzKCJEVCIpDQpsaWJyYXJ5KERUKQ0KZGF0YXRhYmxlKGptZV9zaG9ydCwgDQogICAgICAgICAgY29sbmFtZXMgPSBjKCdDb3VudHJ5JywgJ1JlZ2lvbicsICdZZWFyJywgJ1dhc3RpbmcgKCUpJywgDQogICAgICAgICAgICAgICAgICAgICAgICdTdHVudGluZyAoJSknLCAnQ2hpbGRyZW4gPCA1IHllYXJzIG9sZCAoMDAwKScpLCANCiAgICAgICAgICBmaWx0ZXIgPSAndG9wJywgb3B0aW9ucyA9IGxpc3QocGFnZUxlbmd0aCA9IDEwLCBhdXRvV2lkdGggPSBUUlVFKSkNCmBgYA0KDQpEYXRhLi4uDQoNCmBgYHtyLCBpbmNsdWRlPUZBTFNFfQ0KbGlicmFyeShyYXN0ZXIpDQp3b3JsZF9zcGRmIDwtIHNoYXBlZmlsZSgiZGF0YS93b3JsZF9tYXAvVE1fV09STERfQk9SREVSU19TSU1QTC0wLjMuc2hwIikNCg0KIyBNZXJnZSB0aGUgUW9HIGRhdGEgdG8gU2hhcGUgRmlsZXMNCmxpYnJhcnkoZHBseXIpDQptYXBkaXNwYXJpdGllcyA8LSB3b3JsZF9zcGRmQGRhdGEgJT4lIGxlZnRfam9pbihkaXNwYXJpdGllcywgYnkgPSBjKElTTzMgPSAiaXNvIikpDQp3b3JsZF9zcGRmQGRhdGEgPC0gbWFwZGlzcGFyaXRpZXMNCg0KYGBgDQoNCg0KI0Rpc3Bhcml0aWVzIGJldHdlZW4gbWFsbnV0cml0aW9uIGFuZCB3ZWFsdGgNCg0KYGBge3IsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9DQpsaWJyYXJ5KGxlYWZsZXQpDQpsZWFmbGV0KHdvcmxkX3NwZGYpICU+JSANCiAgYWRkUHJvdmlkZXJUaWxlcygiRXNyaS5Xb3JsZEdyYXlDYW52YXMiKSAgJT4lIA0KICAjc2V0VmlldyhsYXQ9MzQuNjEyMjU1LCBsbmc9LTIyLjMwMDQ0MyAsIHpvb209MTApICU+JQ0KICAgICMgQmFzZSBncm91cHMgPSBCYWNrZ3JvdW5kIGxheWVyDQogICAgYWRkVGlsZXMoZ3JvdXAgPSAiT3BlblN0cmVldE1hcCIpICU+JQ0KICAgIGFkZFByb3ZpZGVyVGlsZXMocHJvdmlkZXJzJFN0YW1lbi5Ub25lckxpdGUsIGdyb3VwID0gIlRvbmVyIExpdGUiKSAlPiUNCiAgICBhZGRQcm92aWRlclRpbGVzKHByb3ZpZGVycyRTdGFtZW4uVG9uZXIsIGdyb3VwID0gIlRvbmVyIikgICU+JQ0KICAgIA0KICAgICMgRGF0YSBMYXllcnMNCiAgICAgICMgRmlyc3QgRGF0YSBMYXllcjogU3R1bnRpbmcgMjAlIHBvb3Jlcg0KICAgIGFkZFBvbHlnb25zKGdyb3VwPSJTdHVudGluZyAxc3Qgd2VhbHRoIHF1aW50aWxlIiwNCiAgICAgICAgICAgICAgICBzdHJva2UgPSBGQUxTRSwgZmlsbE9wYWNpdHkgPSAwLjUsIHNtb290aEZhY3RvciA9IDAuNSwgDQogICAgICAgICAgICAgICAgY29sb3IgPSB+Y29sb3JOdW1lcmljKCJTcGVjdHJhbCIsIHdxMSkod3ExKSwNCiAgICAgICAgICAgICAgICBwb3B1cCA9IHBhc3RlKCJDb3VudHJ5OiIsd29ybGRfc3BkZiROQU1FLCI8YnIvPiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3R1bnRpbmcgaW4gMXN0IHF1aW50aWxlOiIsIHdvcmxkX3NwZGYkd3ExLCIlIiwiPGJyLz4iKSkgJT4lDQogICAgI0FkZCBsZWdlbmRzDQogICAgI2FkZExlZ2VuZCgiYm90dG9tcmlnaHQiLCBwYWwgPSBjb2xvck51bWVyaWMoIlNwZWN0cmFsIiwgd29ybGRfc3BkZiR3cTEpLCANCiAgICAgIyAgICAgICAgIHZhbHVlcyA9IH53cTEsIHRpdGxlID0gIiUgU3R1bnRpbmcgMXN0IFdRIiwgb3BhY2l0eSA9IDAuNSkgJT4lDQogICAgIA0KICAgICMgU2Vjb25kIERhdGEgTGF5ZXI6IENvbGxlZ2UNCiAgICBhZGRQb2x5Z29ucyhncm91cD0iU3R1bnRpbmcgNXRoIHdlYWx0aCBxdWludGlsZSIsIGRhdGE9d29ybGRfc3BkZiwNCiAgICAgICAgICAgICAgICBzdHJva2UgPSBGQUxTRSwgZmlsbE9wYWNpdHkgPSAwLjUsIHNtb290aEZhY3RvciA9IDAuNSwgDQogICAgICAgICAgICAgICAgY29sb3IgPSB+Y29sb3JOdW1lcmljKCJTcGVjdHJhbCIsIHdxNSkod3E1KSwNCiAgICAgICAgICAgICAgICBwb3B1cCA9IHBhc3RlKCJDb3VudHJ5OiIsd29ybGRfc3BkZiROQU1FLCI8YnIvPiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3R1bnRpbmcgaW4gNXRoIHF1aW50aWxlOiIsIHdvcmxkX3NwZGYkd3E1LCIlIiwiPGJyLz4iKSkgJT4lDQogICAgI0FkZCBsZWdlbmRzDQogICAgYWRkTGVnZW5kKCJib3R0b21yaWdodCIsIHBhbCA9IGNvbG9yTnVtZXJpYygiU3BlY3RyYWwiLCB3b3JsZF9zcGRmJHdxNSksIA0KICAgICAgICAgICAgICB2YWx1ZXMgPSB+d3E1LCB0aXRsZSA9ICIlIFN0dW50aW5nIDV0aCBXUSIsIG9wYWNpdHkgPSAwLjUpICU+JQ0KICANCiAgICAjIExheWVycyBjb250cm9sDQogICAgYWRkTGF5ZXJzQ29udHJvbCgNCiAgICBiYXNlR3JvdXBzID0gYygiT3BlblN0cmVldE1hcCIsICJUb25lciIsICJUb25lciBMaXRlIiksDQogICAgb3ZlcmxheUdyb3VwcyA9IGMoIlN0dW50aW5nIDFzdCB3ZWFsdGggcXVpbnRpbGUiLCJTdHVudGluZyA1dGggd2VhbHRoIHF1aW50aWxlIiksDQogICAgb3B0aW9ucyA9IGxheWVyc0NvbnRyb2xPcHRpb25zKGNvbGxhcHNlZCA9IFRSVUUpICkNCmBgYA0KDQo=